﻿using System;
using System.Collections.Generic;
using System.Text;
using Business.Entities;
using System.Data;
using System.Data.SqlClient;

namespace Data.Database
{
    public class ListadoAlumnoAdapter:Adapter
    {
        public List<ListadoAlumnos> GetAll(Persona perAct, string nombreMateria)
        {
            this.OpenConnection();
            List<ListadoAlumnos> Lista = new List<ListadoAlumnos>();
            ListadoAlumnos alumAct;
            int note;
            SqlCommand cmd = new SqlCommand("select distinct p.legajo, p.apellido, p.nombre, "+
            "isnull(ia.nota,null), ia.condicion, com.desc_comision from cursos c inner join docentes_cursos dc on "+
            "dc.id_curso=c.id_curso inner join materias m on m.id_materia=c.id_materia "+
            "inner join alumnos_inscripciones ia on ia.id_curso= c.id_curso "+
            "inner join planes pl on pl.id_plan=m.id_plan inner join personas p on "+
            "p.id_plan=pl.id_plan inner join comisiones com on com.id_comision= c.id_comision " +
            "where dc.id_docente=@id and m.desc_materia=@mat and p.tipo_persona=1",sqlConn);
            cmd.Parameters.Add("@id",typeof(int)).Value=perAct.ID;
            cmd.Parameters.Add("@mat",typeof(string)).Value=nombreMateria;
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                alumAct = new ListadoAlumnos();
                alumAct.ApellidoAlumno = reader["apellido"].ToString();
                alumAct.NombreAlumno = reader["nombre"].ToString();
                /*if (reader["nota"]==null)
                    alumAct.Nota = 0;
                else 
                    alumAct.Nota = (Nullable<int>)reader["nota"];*/
                alumAct.Legajo=(int)reader["legajo"];
                alumAct.Estado=reader["condicion"].ToString();
                alumAct.Comision=reader["desc_comision"].ToString();
                Lista.Add(alumAct);
            }
            reader.Close();
            this.CloseConnection();
            return Lista;
        }

        public List<string> ListaMaterias(Persona per)
        {
            this.OpenConnection();
            List<string> Listado=new List<string>();
            string matAct;
            SqlCommand cmd = new SqlCommand("select distinct m.desc_materia from materias m "+
            "inner join cursos c on c.id_materia=m.id_materia inner join docentes_cursos dc "+
            "on dc.id_curso= c.id_curso inner join personas p on p.id_persona=dc.id_docente "+
            "where dc.id_docente=@id",sqlConn);
            cmd.Parameters.Add("@id",typeof(int)).Value=per.ID;
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                matAct = reader["desc_materia"].ToString();
                Listado.Add(matAct);
            }
            reader.Close();
            this.CloseConnection();
            return Listado;
        }
    }
}
